
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="zh_Hans">
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Django 2.1.2 版本发行说明 &#8212; Django 3.2.11.dev 文档</title>
    <link rel="stylesheet" href="../_static/default.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
    <script type="text/javascript" src="../_static/jquery.js"></script>
    <script type="text/javascript" src="../_static/underscore.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    <script type="text/javascript" src="../_static/language_data.js"></script>
    <link rel="index" title="索引" href="../genindex.html" />
    <link rel="search" title="搜索" href="../search.html" />
    <link rel="next" title="Django 2.1.1 版本发行说明" href="2.1.1.html" />
    <link rel="prev" title="Django 2.1.3 版本发行说明" href="2.1.3.html" />



 
<script src="../templatebuiltins.js"></script>
<script>
(function($) {
    if (!django_template_builtins) {
       // templatebuiltins.js missing, do nothing.
       return;
    }
    $(document).ready(function() {
        // Hyperlink Django template tags and filters
        var base = "../ref/templates/builtins.html";
        if (base == "#") {
            // Special case for builtins.html itself
            base = "";
        }
        // Tags are keywords, class '.k'
        $("div.highlight\\-html\\+django span.k").each(function(i, elem) {
             var tagname = $(elem).text();
             if ($.inArray(tagname, django_template_builtins.ttags) != -1) {
                 var fragment = tagname.replace(/_/, '-');
                 $(elem).html("<a href='" + base + "#" + fragment + "'>" + tagname + "</a>");
             }
        });
        // Filters are functions, class '.nf'
        $("div.highlight\\-html\\+django span.nf").each(function(i, elem) {
             var filtername = $(elem).text();
             if ($.inArray(filtername, django_template_builtins.tfilters) != -1) {
                 var fragment = filtername.replace(/_/, '-');
                 $(elem).html("<a href='" + base + "#" + fragment + "'>" + filtername + "</a>");
             }
        });
    });
})(jQuery);</script>

  </head><body>

    <div class="document">
  <div id="custom-doc" class="yui-t6">
    <div id="hd">
      <h1><a href="../index.html">Django 3.2.11.dev 文档</a></h1>
      <div id="global-nav">
        <a title="Home page" href="../index.html">Home</a>  |
        <a title="Table of contents" href="../contents.html">Table of contents</a>  |
        <a title="Global index" href="../genindex.html">Index</a>  |
        <a title="Module index" href="../py-modindex.html">Modules</a>
      </div>
      <div class="nav">
    &laquo; <a href="2.1.3.html" title="Django 2.1.3 版本发行说明">previous</a>
     |
    <a href="index.html" title="发行说明" accesskey="U">up</a>
   |
    <a href="2.1.1.html" title="Django 2.1.1 版本发行说明">next</a> &raquo;</div>
    </div>

    <div id="bd">
      <div id="yui-main">
        <div class="yui-b">
          <div class="yui-g" id="releases-2.1.2">
            
  <div class="section" id="s-django-2-1-2-release-notes">
<span id="django-2-1-2-release-notes"></span><h1>Django 2.1.2 版本发行说明<a class="headerlink" href="#django-2-1-2-release-notes" title="永久链接至标题">¶</a></h1>
<p><em>2018 年 10 月 1 日</em></p>
<p>Django 2.1.2 fixes a security issue and several bugs in 2.1.1. Also, the latest
string translations from Transifex are incorporated.</p>
<div class="section" id="s-cve-2018-16984-password-hash-disclosure-to-view-only-admin-users">
<span id="cve-2018-16984-password-hash-disclosure-to-view-only-admin-users"></span><h2>CVE-2018-16984: Password hash disclosure to &quot;view only&quot; admin users<a class="headerlink" href="#cve-2018-16984-password-hash-disclosure-to-view-only-admin-users" title="永久链接至标题">¶</a></h2>
<p>If an admin user has the change permission to the user model, only part of the
password hash is displayed in the change form. Admin users with the view (but
not change) permission to the user model were displayed the entire hash. While
it's typically infeasible to reverse a strong password hash, if your site uses
weaker password hashing algorithms such as MD5 or SHA1, it could be a problem.</p>
</div>
<div class="section" id="s-bugfixes">
<span id="bugfixes"></span><h2>漏洞修复<a class="headerlink" href="#bugfixes" title="永久链接至标题">¶</a></h2>
<ul class="simple">
<li>Fixed a regression where nonexistent joins in <code class="docutils literal notranslate"><span class="pre">F()</span></code> no longer raised
<code class="docutils literal notranslate"><span class="pre">FieldError</span></code> (<a class="reference external" href="https://code.djangoproject.com/ticket/29727">#29727</a>).</li>
<li>Fixed a regression where files starting with a tilde or underscore weren't
ignored by the migrations loader (<a class="reference external" href="https://code.djangoproject.com/ticket/29749">#29749</a>).</li>
<li>Made migrations detect changes to <code class="docutils literal notranslate"><span class="pre">Meta.default_related_name</span></code>
(<a class="reference external" href="https://code.djangoproject.com/ticket/29755">#29755</a>).</li>
<li>Added compatibility for <code class="docutils literal notranslate"><span class="pre">cx_Oracle</span></code> 7 (<a class="reference external" href="https://code.djangoproject.com/ticket/29759">#29759</a>).</li>
<li>Fixed a regression in Django 2.0 where unique index names weren't quoted
(<a class="reference external" href="https://code.djangoproject.com/ticket/29778">#29778</a>).</li>
<li>Fixed a regression where sliced queries with multiple columns with the same
name crashed on Oracle 12.1 (<a class="reference external" href="https://code.djangoproject.com/ticket/29630">#29630</a>).</li>
<li>Fixed a crash when a user with the view (but not change) permission made a
POST request to an admin user change form (<a class="reference external" href="https://code.djangoproject.com/ticket/29809">#29809</a>).</li>
</ul>
</div>
</div>


          </div>
        </div>
      </div>
      
        
          <div class="yui-b" id="sidebar">
            
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
  <h3><a href="../contents.html">Table of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">Django 2.1.2 版本发行说明</a><ul>
<li><a class="reference internal" href="#cve-2018-16984-password-hash-disclosure-to-view-only-admin-users">CVE-2018-16984: Password hash disclosure to &quot;view only&quot; admin users</a></li>
<li><a class="reference internal" href="#bugfixes">漏洞修复</a></li>
</ul>
</li>
</ul>

  <h4>上一个主题</h4>
  <p class="topless"><a href="2.1.3.html"
                        title="上一章">Django 2.1.3 版本发行说明</a></p>
  <h4>下一个主题</h4>
  <p class="topless"><a href="2.1.1.html"
                        title="下一章">Django 2.1.1 版本发行说明</a></p>
  <div role="note" aria-label="source link">
    <h3>本页</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/releases/2.1.2.txt"
            rel="nofollow">显示源代码</a></li>
    </ul>
   </div>
<div id="searchbox" style="display: none" role="search">
  <h3>快速搜索</h3>
    <div class="searchformwrapper">
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" />
      <input type="submit" value="转向" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    </div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
              <h3>Last update:</h3>
              <p class="topless">12月 07, 2021</p>
          </div>
        
      
    </div>

    <div id="ft">
      <div class="nav">
    &laquo; <a href="2.1.3.html" title="Django 2.1.3 版本发行说明">previous</a>
     |
    <a href="index.html" title="发行说明" accesskey="U">up</a>
   |
    <a href="2.1.1.html" title="Django 2.1.1 版本发行说明">next</a> &raquo;</div>
    </div>
  </div>

      <div class="clearer"></div>
    </div>
  </body>
</html>